home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
- ateobus.library/--background--
- ateobus.library/AC_GetSpaceBase
- ateobus.library/AC_AddIntServer
- ateobus.library/AC_RemIntServer
- ateobus.library/AC_IrqLine2Level
- ateobus.library/AC_IrqLevel2Line
- ateobus.libraru/AC_DisableIrq
- ateobus.library/AC_EnableIrq
- ateobus.library/AC_QueryValue
- ateobus.library/AC_StoreValue
- ateobus.library/AC_GetVersion
- ateobus.library/AC_GetGlobalPrefs
-
- ateobus.library/--background-- ateobus.library/--background--
-
- Version 3.0 / April 2, 1999
-
- The main use is this library is to control the AtéoBus trough the
- AtéoBusServer (started by the StartAteoBus command)
- The AtéoBusserver has several functions:
- - Storage of values
- - Serving interrupt request comming from the AtéoBus
- - Giving base adresse of the differents bus space
-
- In the future, this library and it associe server will also support
- ISA Plug&Play card on the bus
-
- mail bug report to: arlequin@ateo-concepts.com
-
- ateobus.library/AC_GetSpaceBase ateobus.library/AC_GetSpaceBase
-
- NAME
- AC_GetSpaceBase - get the adress base of the specified space
-
- SYNOPSIS
- base = AC_GetSpaceBase( flags )
- D0 D0
-
- void* AC_GetSpaceBase( ULONG )
-
- FUNCTION
- This routine will return the adress of the specified space
-
- The return value will be the 'Amiga' adress see as 0x0 from the AtéoBus
- side for the specified space
-
- Please use it instead of using define adress. Adress space can change and
- this is the only safe methods
-
- INPUTS
- The flags are combinaison of:
-
- ATEOBUS_SPACE (bit 0)
- ISA_SPACE (bit 1)
-
- IO_SPACE (bit 4)
- MEMORY_SPACE (bit 5)
-
- For example is you want to know the ISA IO base adress, you have to call
- this routine with ISA_SPACE(bit1) and IO_SPACE(bit4) set
-
- RESULTS
- The routine will return the requested adress or NULL if this space is not
- supported
-
- NOTE
-
- SEE ALSO
-
- ateobus.library/AC_AddIntServer ateobus.library/AC_AddIntServer
-
- NAME
- AC_AddIntServer -- add an interrupt server the AtéoBus server chain
-
- SYNOPSIS
- ok = AC_AddIntServer(intNum, interrupt)
- D0 D0-0:4 A1
-
- ULONG AC_AddIntServer(ULONG, struct Interrupt *);
-
- FUNCTION
- This function adds a new interrupt server to a given server chain.
- The node is located on the chain in a priority dependent position.
- If this is the first server on a particular chain, interrupts will
- be enabled for that chain.
-
- Each link in the chain will be called in priority order until the
- chain ends or one of the servers returns with the 68000's Z condition
- code clear (indicating non-zero). Servers on the chain should return
- with the Z flag clear if the interrupt was specifically for that
- server, and no one else. (Take care with High Level Language servers,
- the language may not have a mechanism for reliably setting the Z flag
- on exit).
-
- Servers are called with the following register conventions:
-
- D0 -> D7 - scratch
-
- A0 - scratch
- A1 - server is_Data pointer (scratch)
- A2 -> A4 - scratch
- A5 - jump vector register (scratch)
-
- all other registers must be preserved
-
- INPUTS
- intNum - the AtéoBus interrupt line number (0 through 10) given by
- AC_IrqLine2Level() .
-
- interrupt - pointer to an Interrupt structure.
- By convention, the LN_NAME of the interrupt structure must
- point a descriptive string so that other users may
- identify who currently has control of the interrupt.
- The LN_TYPE must be set to NT_INTERRUPT. If not this function
- will fail
-
- RESULTS
- NULL is the routine fails, no NULL overwise
-
- WARNING
- Some compilers or assemblers may optimize code in unexpected ways,
- affecting the conditions codes returned from the function. Watch
- out for a "MOVEM" instruction (which does not affect the condition
- codes) turning into "MOVE" (which does).
-
- BUGS
- Version 1.1 of the ateobus.library does not organize the chain in
- priority order and has only two place for each irq line.
-
- SEE ALSO
- AC_RemIntServer()
-
-
- ateobus.library/AC_RemIntServer ateobus.library/AC_RemIntServer
-
- NAME
- AC_RemIntServer -- remove an interrupt server from a server chain
-
- SYNOPSIS
- ok = AC_RemIntServer(intNum, interrupt)
- D0 D0 A1
-
- ULONG AC_RemIntServer(ULONG,struct Interrupt *)
-
- FUNCTION
- This function removes an interrupt server node from the given
- server chain.
-
- INPUTS
- intNum - the AtéoBus interrupt line (0..10) given by AC_IrqLine2Level()
- interrupt - pointer to an interrupt server node
-
- NOTE
- This routine doesn't take care of the interrupt structure. This structure
- is just a way for passign the int server pointer. (You can use a different
- interrupt structure for adding and removing a serveur as long as the is_Code
- and is_Data field are the same).
-
- SEE ALSO
- AC_AddIntServer(), AC_IrqLevel2Line(), AC_IrqLine2Level()
-
- ateobus.library/AC_IrqLine2Level ateobus.library/AC_IrqLine2Level
-
- NAME
- AC_IrqLine2Level -- Convert the ISA Irq line number to the AtéoBus Irq Level
- (V3)
-
- SYNOPSIS
- IrqLevel = AC_IrqLine2Level( IrqLine )
- D0 D1
-
- UBYTE AC_IrqLine2Level( UBYTE IrqLine)
-
- FUNCTION
- This function convert the IrqLine of the ISA bus (3->15) to the IrqLevel
- you must give to AC_AddIntServer() or to AC_RemIntServer()
-
- INPUTS
- IrqLine - the ISA like Irq number
-
- RESULTS
- The IrqLevel you must give to AC_AddIntServer() or to AC_RemIntServer()
-
- SEE ALSO
- AC_AddIntServer(), AC_RemIntServer(), AC_IrqLevel2Line()
-
-
-
- ateobus.library/AC_IrqLevel2Line ateobus.library/AC_IrqLevel2Line
-
- NAME
- AC_IrqLevel2Line -- Convert the AtéoBus Irq level to an ISA Irq line number
- (V3)
-
- SYNOPSIS
- IrqLine = AC_IrqLevel2Line( IrqLevel )
- D0 D1
-
- UBYTE AC_IrqLevel2Line( UBYTE IrqLevel )
-
- FUNCTION
- This function convert the AtéoBus Irq Levelto the ISA Irq line number.
-
- INPUTS
- IrqLevel - the AtéoBus Irq Level
-
- RESULTS
- The ISA Irq line number
-
- SEE ALSO
- AC_AddIntServer(), AC_RemIntServer(), AC_IrqLine2Level()
-
-
- ateobus.libraru/AC_DisableIrq ateobus.libraru/AC_DisableIrq
-
- NAME
- AC_DisableIrq -- Control the Atéobus interrupts (V3)
-
- SYNOPSIS
- ok = AC_DisableIrq( Irq, Flags )
- D0 D0 D1
-
- UBYTE AC_Disable( BYTE Irq, ULONG Flags )
-
- FUNCTION
- This function control the Atéobus interrupts
-
- if Irq is equal to -1, this function will prevent the Atéobus to interrupt
- the Amiga. When Irq = -1, the Flags are ignored.
-
- If the bit AC_IRQLEVELB is set in Flags, the Irq will refer to the Atéobus
- level, is this bit is reset, the Irq will refer to the ISA Line number.
-
- Callign this function with AC_IRQLEVELB reset and Irq = 5, will disable the
- interrupt server for the ISA interrupt line number 5
-
- INPUTS
- Irq - the Irq line or level, according to Flags
- Flags - bit AC_IRQLEVELB, if set, the function works with interrupt level,
- if reset, the function works with line.
-
- RESULTS
- ok - Error code, if =0 the Level/Line is not supported by the AtéoBus.
-
- WARNING
- Be careful with this function! If you disable a specific line/level where an
- interrup can occur, you will freeze the Amiga!
-
- In ateobus.library V3.0, the Enable/Disable function by Line/Level doesn't works!
-
-
- ateobus.library/AC_EnableIrq ateobus.library/AC_EnableIrq
-
- NAME
- AC_EnableIrq -- Control the AtéoBus interrupts (V3)
-
- SYNOPSIS
- ok = AC_EnableIrq( Irq, Flags )
- D0 D0 D1
-
- UBYTE AC_EnableIrq( BYTE Irq, ULONG Flags )
-
- FUNCTION
- This function control the AtéoBus interrupts
-
- if Irq is equal to -1, this function will enable the Atéobus to interrupt
- the Amiga. When Irq = -1, the Flags are ignored.
-
- If the bit AC_IRQLEVELB is set in Flags, the Irq will refer to the Atéobus
- level, is this bit is reset, the Irq will refer to the ISA Line number.
-
- Callign this function with AC_IRQLEVELB reset and Irq = 5, will enable the
- interrupt server for the ISA interrupt line number 5
-
- INPUTS
- Irq - the Irq line or level, according to Flags
- Flags - bit AC_IRQLEVELB, if set, the function works with interrupt level,
- if reset, the function works with line.
-
- RESULTS
- ok - Error code, if =0 the Level/Line is not supported by the AtéoBus.
-
- WARNING
- In ateobus.library V3.0, the Enable/Disable function by Line/Level doesn't works!
-
- NOTE
- If you enable a line where not interrupt will occur you can just loose time!
-
-
- ateobus.library/AC_QueryValue ateobus.library/AC_QueryValue
-
- NAME
- AC_QueryValue -- Query the server about a specified
-
- SYNOPSIS
- Value = AC_QueryValue( Number )
- D0 D1
-
- ULONG AC_QueryValue(ULONG Number)
-
- FUNCTION
- This function query the server about a given memory case.
-
- INPUTS
- The memory case number.
-
- RESULTS
- The content of the memory case.
-
- SEE ALSO
- AC_StoreValue()
-
-
- ateobus.library/AC_StoreValue ateobus.library/AC_StoreValue
-
- NAME
- AC_StoreValue -- Store the Value in Query the server about a specified
-
- SYNOPSIS
- ok = AC_StoreValue( Value, Number )
- D0 D0 D1
-
- ULONG AC_StoreValue(ULONG Value, ULONG Number )
-
- FUNCTION
- This function store the Value on the Number memory case.
-
- INPUTS
- The memory case number and the Value to Store.
-
- RESULTS
- Succes (NULL) or Error code (Positive value).
-
- SEE ALSO
- AC_StoreValue()
-
-
- ateobus.library/AC_GetVersion ateobus.library/AC_GetVersion
-
- NAME
- AC_GetVersion -- get the version of the AtéoBus server
-
- SYNOPSIS
- version = AC_GetVersion()
- D0
-
- ULONG AC_GetVersion( void )
-
- FUNCTION
- This function will return the version of the AtéoBus server
-
- INPUTS
- None
-
- RESULTS
- Version of the AtéoBus server (100 x version + revision)
-
- SEE ALSO
-
- ateobus.library/AC_GetGlobalPrefs ateobus.library/AC_GetGlobalPrefs
-
- NAME
- AC_GetGlobalPrefs -- get a copy of the AteoBusPrefs structure
-
- SYNOPSIS
- Pref = AC_GetGlobalPrefs( )
- D0
-
- struct AteoBusPrefs *AC_GetGlobalPrefs( void )
-
- FUNCTION
- This function will return you a ptr to the AteobusPrefs structure. Be
- careful, this strcuture is read only!!!!
-
- INPUTS
- None
-
- RESULTS
- A ptr to the AteoBusPrefs structure
-
- WARNING
- The AteoBusPrefs structure is read only!
-
- WARNING 2
- This fucntion is not yet implemented!
-
- SEE ALSO
-
-